package com.cyj.dream.core.constant.users;

/**
 * @Description: 使用线程上下文在线程内共享用户信息
 * @BelongsProject: DreamChardonnay
 * @BelongsPackage: com.cyj.dream.core.constant.users
 * @Author: ChenYongJia
 * @CreateTime: 2021-10-25 13:32
 * @Email: chen87647213@163.com
 * @Version: 1.0
 */
public class UserContext {
    /**
     * 把构造函数私有化，外部不能new
     */
    private UserContext() {
    }

    /**
     * 定义线程存放用户信息
     */
    private static final ThreadLocal<UserInfoDTO> context = new ThreadLocal<>();

    /**
     * 存放用户信息
     *
     * @param user
     */
    public static void set(UserInfoDTO user) {
        context.set(user);
    }

    /**
     * 获取用户信息
     *
     * @return
     */
    public static UserInfoDTO get() {
        return context.get();
    }

    /**
     * 清除当前线程内引用，防止内存泄漏
     */
    public static void remove() {
        context.remove();
    }

}

